home *** CD-ROM | disk | FTP | other *** search
Wrap
1000 '******* Statistics Tool Murex Ver1.0 Source List ******* 1010 GOSUB *SETUP 1020 GOSUB *DAT_SETUP 1030 GOSUB *MENUDROW 1040 GOSUB *DAT_PRINT 1050 GOSUB *MAIN 1060 ' 1070 *SETUP 1080 SCREEN@ 2: COLOR 7,%119,%255,4: CLS 1090 MOUSE 0 1100 GOSUB *MCURSOR_ALLOW 1110 ELEM=100: STD = 1 1120 RETURN 1130 ' 1140 *MENUDROW 1150 DIM LINIE(12): LINIE(0)=10: LINIE(1)=40: LINIE(2)=90: LINIE(3)=210: LINIE(4)=220: LINIE(5)=230: LINIE(6)=260: LINIE(7)=300: LINIE(8)=430: LINIE(9)=560: LINIE(10)=600: LINIE(11)=630 1160 DIM FORMEL$(4): FORMEL$(0)="y=A+Bx": FORMEL$(1)="y=A+BInx": FORMEL$(2)="y=A・e": FORMEL$(3)="y=A・x" 1170 DIM ZEICHEN$(12): ZEICHEN$(0)=" Σn": ZEICHEN$(1)=" Σx": ZEICHEN$(2)=" Σy": ZEICHEN$(3)=" Σx": ZEICHEN$(4)=" Σy": ZEICHEN$(5)="Σxy" 1180 ZEICHEN$(6)=" x": ZEICHEN$(7)=" y": ZEICHEN$(8)=" (x)": ZEICHEN$(9)=" (x)": ZEICHEN$(10)=" (x)": ZEICHEN$(11)=" (x)" 1190 DIM TRIANGLE(6): TRIANGLE(0)=103: TRIANGLE(1)=123: TRIANGLE(2)=213: TRIANGLE(3)=313: TRIANGLE(4)=403: TRIANGLE(5)=423 1200 LINE (0,0)-(639,40),PSET,%19,BF 1210 LINE (560,10)-(630,30),PSET,%119,BF 1220 LINE (11,51)-(209,69),PSET,%19,BF 1230 LINE (11,71)-(39,309),PSET,%83,BF 1240 LINE (41,71)-(89,309),PSET,%19,BF 1250 LINE (11,331)-(209,349),PSET,%19,BF 1260 LINE (11,351)-(39,429),PSET,%83,BF 1270 LINE (41,351)-(209,429),PSET,%19,BF 1280 LINE (11,431)-(89,469),PSET,%19,BF 1290 LINE (231,51)-(599,69),PSET,%19,BF 1300 LINE (231,71)-(259,469),PSET,%83,BF 1310 LINE (601,71)-(629,469),PSET,%83,BF 1320 FOR KM=0 TO 22 1330 LINE (10,50+20*KM)-(210,50+20*KM),PSET,%55 1340 LINE (230,50+20*KM)-(600,50+20*KM),PSET,%55 1350 IF (KM-1) MOD 5=0 THEN LINE (600,50+20*KM)-(630,50+20*KM),PSET,%55 1360 IF KM<4 AND KM MOD 3=0 THEN LINE (LINIE(KM),50)-(LINIE(KM),310),PSET,%55: LINE(LINIE(KM),330)-(LINIE(KM),470),PSET,%55 1370 IF KM<3 AND KM>0 THEN LINE (LINIE(KM),70)-(LINIE(KM),310),PSET,%55: IF KM=1 THEN LINE(LINIE(KM),350)-(LINIE(KM),430),PSET,%55 ELSE LINE(LINIE(KM),430)-(LINIE(KM),470),PSET,%55 1380 IF KM=4 THEN LINE(LINIE(KM),41)-(LINIE(KM),479),PSET,%19 1390 IF KM>4 AND KM<12 THEN LINE (LINIE(KM),70)-(LINIE(KM),470),PSET,%55: IF KM><6 AND KM><11 THEN LINE(LINIE(KM),50)-(LINIE(KM),70),PSET,%55 1400 NEXT KM 1410 SYMBOL (20,13),"Murex Ver 1.0",1,1,%127 1420 SYMBOL (20,53),"Deviation",1,1,%127 1430 SYMBOL (20,333),"Regression",1,1,%127 1440 SYMBOL (564,13),"EXIT",1,1,%19 1450 FOR KM=0 TO 3 1460 SYMBOL (50,353+20*KM),FORMEL$(KM),1,1 1470 NEXT KM 1480 SYMBOL(130,393),"Bx",1,.5!: SYMBOL(130,413),"B",1,.5! 1490 FOR KM=0 TO 11 1500 SYMBOL (41,73+20*KM),ZEICHEN$(KM),1,1 1510 IF KM<5 AND KM>2 THEN SYMBOL(81,73+20*KM),"2",1,.5! 1520 IF KM>5 AND KM<8 THEN SYMBOL(57,73+20*KM)," ̄",1,1 1530 IF KM>7 AND KM<11 THEN SYMBOL(41,73+20*KM),"μ",.75!,1 1540 IF KM=11 THEN SYMBOL(41,73+20*KM),"γ",.75!,1 1550 IF KM>9 THEN SYMBOL(73,73+20*KM),"~",1,1 1560 IF KM=8 THEN SYMBOL(53,81+20*KM),"n",.5!,.5! 1570 IF KM>8 THEN SYMBOL(53,81+20*KM),"n-1",.5!,.5! 1580 NEXT KM 1590 SYMBOL(25,433),"A =",1,1:SYMBOL(25,453),"B =",1,1 1600 SYMBOL(233,53),"Data No.",1,1: SYMBOL(333,53),"Data x",1,1: SYMBOL(389,61),"i",1,.5!: SYMBOL(463,53),"Data y",1,1: SYMBOL(519,61),"i",1,.5!: SYMBOL(563,53),"Data n",.8!,1 1610 FOR KM=0 TO 5 1620 IF KM<3 THEN SYMBOL (607,TRIANGLE(KM)),"▲",1,1,%119 ELSE SYMBOL (607,TRIANGLE(KM)),"▼",1,1,%119 1630 NEXT KM 1640 RETURN 1650 ' 1660 *DAT_SETUP 1670 DIM DAT$(ELEM,4) 1680 FOR KDS=1 TO ELEM 1690 DAT$(KDS,3)="1" 1700 DAT$(KDS,4)="0" 1710 NEXT KDS 1715 DIM DAT_C(ELEM,2) 1720 RETURN 1730 ' 1740 *DAT_PRINT 1750 FOR KDP=0 TO 19 1760 SPLUS_IN$=STR$(STD+KDP): SPLUS_LEN=4 1770 GOSUB *SPLUS 1780 SYMBOL (264,73+20*KDP),SPLUS_OUT$,1,1,,,OPAQUE 1790 SPLUS_IN$=DAT$(STD+KDP,1): SPLUS_LEN=15 1800 GOSUB *SPLUS 1810 SYMBOL (305,73+20*KDP),SPLUS_OUT$,1,1,,,OPAQUE 1820 SPLUS_IN$=DAT$(STD+KDP,2): SPLUS_LEN=15 1830 GOSUB *SPLUS 1840 SYMBOL (435,73+20*KDP),SPLUS_OUT$,1,1,,,OPAQUE 1850 SPLUS_IN$=DAT$(STD+KDP,3): SPLUS_LEN=4 1860 GOSUB *SPLUS 1870 SYMBOL (564,73+20*KDP),SPLUS_OUT$,1,1,,,OPAQUE 1880 IF DAT$(STD+KDP,4)="1" THEN LINE(231,71+20*KDP)-(259,89+20*KDP),PSET,%239,BF ELSE LINE(231,71+20*KDP)-(259,89+20*KDP),PSET,%83,BF 1890 NEXT KDP 1900 RETURN 1910 ' 1920 *MAIN 1930 MOUSE 1,319,239,1 1940 ON MOUSE(2) GOSUB *MCONTROL 1950 MOUSE(2) ON 1960 WHILE -1: WEND 1970 ' 1980 *MCONTROL 1990 IF ABS(MOUSE(0)-595)<=35 AND ABS(MOUSE(1)-20)<=10 GOSUB *EXIT 2000 IF ABS(MOUSE(0)-615)<=15 AND ABS(MOUSE(1)-270)<=200 GOSUB *MC_1: RETURN 2010 IF ABS(MOUSE(0)-245)<=15 AND ABS(MOUSE(1)-270)<=200 GOSUB *MC_2: RETURN 2020 IF ABS(MOUSE(0)-450)<=150 AND ABS(MOUSE(1)-270)<=200 GOSUB *MC_3: RETURN 2030 IF ABS(MOUSE(0)-15)<=25 AND ABS(MOUSE(1)-190)<=120 GOSUB *MC_4: RETURN 2040 IF ABS(MOUSE(0)-15)<=25 AND ABS(MOUSE(1)-390)<=40 GOSUB *MC_5: RETURN 2050 RETURN 2060 *MC_1 2070 DR=(MOUSE(1)-70)\100 2080 GOSUB *MCURSOR_WAIT 2090 GOSUB *DAT_ROLL 2100 GOSUB *MCURSOR_ALLOW 2110 RETURN 2120 *MC_2 2130 DN=(MOUSE(1)-70)\20 2140 FOR KN=0 TO 11 2150 LINE(11,71+20*KN)-(39,89+20*KN),PSET,%83,BF 2160 IF KN<4 THEN LINE(11,351+20*KN)-(39,369+20*KN),PSET,%83,BF 2170 NEXT KN 2180 GOSUB *DAT_PANEL 2190 RETURN 2200 *MC_3 2210 DI_V=(MOUSE(1)-70)\20 2220 DI_C=(MOUSE(0)-300)\130 2230 DI_PRE$=DAT$(STD+DI_V,DI_C+1) 2240 GOSUB *DAT_INPUT 2250 IF DAT$(STD+DI_V,DI_C+1)=DI_PRE$ THEN RETURN 2260 FOR KI=0 TO 11 2270 LINE(11,71+20*KI)-(39,89+20*KI),PSET,%83,BF 2280 IF KI<4 THEN LINE(11,351+20*KI)-(39,369+20*KI),PSET,%83,BF 2290 NEXT KI 2300 RETURN 2310 *MC_4 2320 DC=(MOUSE(1)-70)\20 2330 GOSUB *MCURSOR_WAIT 2340 LINE (11,71+20*DC)-(39,89+20*DC),PSET,%103,BF 2350 ON DC+1 GOSUB *CALC_NUMN,*CALC_SX,*CALC_SY,*CALC_SXX,*CALC_SYY,*CALC_SXY,*CALC_AVX,*CALC_AVY,*CALC_MX,*CALC_MNX,*CALC_MNAVX,*CALC_RNAVX 2360 SPLUS_LEN=14 2370 GOSUB *SPLUS 2380 LINE (11,71+20*DC)-(39,89+20*DC),PSET,%239,BF 2390 GOSUB *MCURSOR_ALLOW 2400 SYMBOL (95,73+20*DC),SPLUS_OUT$,1,1,,,OPAQUE 2410 RETURN 2420 *MC_5 2430 DT=(MOUSE(1)-350)\20 2440 GOSUB *MCURSOR_WAIT 2450 FOR KT=0 TO 3 2460 LINE(11,351+20*KT)-(39,369+20*KT),PSET,%83,BF 2470 NEXT KT 2480 LINE (11,351+20*DT)-(39,369+20*DT),PSET,%103,BF 2490 ON DT+1 GOSUB *RET_LINE,*RET_LOG,*RET_EXP,*RET_XX 2500 LINE (11,351+20*DT)-(39,369+20*DT),PSET,%239,BF 2510 GOSUB *MCURSOR_ALLOW 2520 SPLUS_LEN=14 2530 GOSUB *SPLUS 2540 SYMBOL (95,433),SPLUS_OUT$,1,1,,,OPAQUE 2550 IF SPLUS_IN$><" - Error - " THEN SPLUS_IN$=STR$(RET_B) 2560 SPLUS_LEN=14 2570 GOSUB *SPLUS 2580 SYMBOL (95,453),SPLUS_OUT$,1,1,,,OPAQUE 2590 RETURN 2600 ' 2610 *SPLUS 2620 SPLUS_OUT$=SPLUS_IN$ 2630 IF KLEN(SPLUS_IN$)>=SPLUS_LEN THEN SPLUS_OUT$=KLEFT$(SPLUS_OUT$,SPLUS_LEN): RETURN 2640 FOR KS=1 TO SPLUS_LEN-KLEN(SPLUS_IN$) 2650 SPLUS_OUT$=" "+SPLUS_OUT$ 2660 NEXT KS 2670 RETURN 2680 ' 2690 *DAT_ROLL 2700 IF DR=0 THEN STD=STD-20 ELSE IF DR=1 THEN STD=STD-5 ELSE IF DR=2 THEN STD=STD+5 ELSE STD=STD+20 2710 IF STD<1 THEN STD=1 2720 IF STD>ELEM-19 THEN STD=ELEM-19 2730 GOSUB *DAT_PRINT 2740 RETURN 2750 ' 2760 *DAT_PANEL 2770 IF DAT$(STD+DN,4)="0" THEN DAT$(STD+DN,4)="1": LINE(231,71+20*DN)-(259,89+20*DN),PSET,%239,BF ELSE DAT$(STD+DN,4)="0": LINE(231,71+20*DN)-(259,89+20*DN),PSET,%83,BF 2780 RETURN 2790 ' 2800 *DAT_INPUT 2810 MOUSE 1,,,0 2820 IF DI_C<2 THEN GOSUB *DATINPUT_XY ELSE GOSUB *DATINPUT_N 2830 MOUSE 1,,,1 2840 RETURN 2850 *DATINPUT_XY 2860 LINE(301+130*DI_C,71+20*DI_V)-(429+130*DI_C,89+20*DI_V),PSET,%255,BF 2870 SYMBOL (305+130*DI_C,73+20*DI_V),DAT$(STD+DI_V,DI_C+1),1,1,%119 2880 DI_LEN=KLEN(DAT$(STD+DI_V,DI_C+1)): DI_MAX=14 2890 GOSUB *DATA_IN 2895 GOSUB *DATA_ATOF 2900 LINE(301+130*DI_C,71+20*DI_V)-(429+130*DI_C,89+20*DI_V),PSET,%119,BF 2910 SPLUS_IN$=DAT$(STD+DI_V,DI_C+1): SPLUS_LEN=15 2920 GOSUB *SPLUS 2930 SYMBOL (305+130*DI_C,73+20*DI_V),SPLUS_OUT$,1,1 2940 RETURN 2950 *DATINPUT_N 2960 LINE(561,71+20*DI_V)-(599,89+20*DI_V),PSET,%255,BF 2970 SYMBOL (565,73+20*DI_V),DAT$(STD+DI_V,3),1,1,%119 2980 DI_LEN=KLEN(DAT$(STD+DI_V,3)): DI_MAX=3 2990 GOSUB *DATA_IN 3000 LINE(561,71+20*DI_V)-(599,89+20*DI_V),PSET,%119,BF 3010 SPLUS_IN$=DAT$(STD+DI_V,3): SPLUS_LEN=4 3020 GOSUB *SPLUS 3030 SYMBOL (565,73+20*DI_V),SPLUS_OUT$,1,1 3040 RETURN 3050 ' 3060 *DATA_IN 3070 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V),"_",1,1,%119 3080 WHILE -1 3090 WHILE IN$ ="" 3100 IN$=INKEY$ 3110 WEND 3120 IF ASC(IN$)=13 THEN IN$="": RETURN 3130 IF ASC(IN$)=8 GOSUB *DATAIN_BS 3140 IF ASC(IN$)>=48 AND ASC(IN$)<=57 GOSUB *DATAIN_NUM 3150 IF IN$="." GOSUB *DATAIN_POINT 3160 IF IN$="-" GOSUB *DATAIN_MINUS 3170 IN$="" 3180 WEND 3190 *DATAIN_POINT 3200 FOR KDI=1 TO DI_LEN 3210 IF MID$(DAT$(STD+DI_V,DI_C+1),KDI,1)="." THEN RETURN 3220 NEXT KDI 3230 IF DI_C=2 THEN RETURN 3240 GOSUB *DATAIN_NUM 3250 RETURN 3260 *DATAIN_MINUS 3270 IF DI_LEN><0 THEN RETURN 3280 IF DI_C=2 THEN RETURN 3290 GOSUB *DATAIN_NUM 3300 RETURN 3310 *DATAIN_NUM 3320 IF DI_LEN=DI_MAX THEN RETURN 3330 DAT$(STD+DI_V,DI_C+1)=DAT$(STD+DI_V,DI_C+1)+IN$ 3340 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V)," ",1,1,,,NOT 3350 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V),IN$,1,1,%119 3360 DI_LEN=DI_LEN+1 3370 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V),"_",1,1,%119 3380 RETURN 3390 *DATAIN_BS 3400 IF DI_LEN=0 THEN RETURN 3410 DAT$(STD+DI_V,DI_C+1)=KLEFT$(DAT$(STD+DI_V,DI_C+1),DI_LEN-1) 3420 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V)," ",1,1,,,NOT 3430 DI_LEN=DI_LEN-1 3440 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V)," ",1,1,,,NOT 3450 SYMBOL(305+130*DI_C+8*DI_LEN,73+20*DI_V),"_",1,1,%119 3460 RETURN 3461 ' 3462 *DATA_ATOF 3463 DA_P=0: DA_S=0: DA_T=0: DAT_C(STD+DI_V,DI_C+1)=0 3464 DA_L=KLEN(DAT$(STD+DI_V,DI_C+1)) 3465 FOR KDA=1 TO DA_L 3466 DA_G=0 3467 IF KDA=1 AND MID$(DAT$(STD+DI_V,DI_C+1),KDA,1)="-" THEN DA_S=1: DA_G=1 3468 IF MID$(DAT$(STD+DI_V,DI_C+1),KDA,1)="." THEN DA_P=1: DA_G=1 3469 IF DA_G=0 THEN GOSUB *DATAATOF_S 3470 NEXT KDA 3471 IF DA_S=1 THEN DAT_C(STD+DI_V,DI_C+1)=-DAT_C(STD+DI_V,DI_C+1) 3472 RETURN 3473 *DATAATOF_S 3474 IF DA_P=0 THEN DAT_C(STD+DI_V,DI_C+1)=DAT_C(STD+DI_V,DI_C+1)*10 3475 IF DA_P=0 THEN DA_T=VAL(MID$(DAT$(STD+DI_V,DI_C+1),KDA,1)) ELSE DA_T=VAL(MID$(DAT$(STD+DI_V,DI_C+1),KDA,1))/(10^DA_P): DA_P=DA_P+1 3476 DAT_C(STD+DI_V,DI_C+1)=DAT_C(STD+DI_V,DI_C+1)+DA_T 3477 RETURN 3478 ' 3480 *CALC_NUMN 3490 DC_OUT=0 3500 FOR KC=1 TO ELEM 3510 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3)) 3520 NEXT KC 3530 SPLUS_IN$=STR$(DC_OUT) 3540 RETURN 3550 ' 3560 *CALC_SX 3570 DC_OUT=0 3580 FOR KC=1 TO ELEM 3590 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*DAT_C(KC,1) 3600 NEXT KC 3610 SPLUS_IN$=STR$(DC_OUT) 3620 RETURN 3630 ' 3640 *CALC_SY 3650 DC_OUT=0 3660 FOR KC=1 TO ELEM 3670 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*DAT_C(KC,2) 3680 NEXT KC 3690 SPLUS_IN$=STR$(DC_OUT) 3700 RETURN 3710 ' 3720 *CALC_SXX 3730 DC_OUT=0 3740 FOR KC=1 TO ELEM 3750 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*DAT_C(KC,1)*DAT_C(KC,1) 3760 NEXT KC 3770 SPLUS_IN$=STR$(DC_OUT) 3780 RETURN 3790 ' 3800 *CALC_SYY 3810 DC_OUT=0 3820 FOR KC=1 TO ELEM 3830 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*DAT_C(KC,2)*DAT_C(KC,2) 3840 NEXT KC 3850 SPLUS_IN$=STR$(DC_OUT) 3860 RETURN 3870 ' 3880 *CALC_SXY 3890 DC_OUT=0 3900 FOR KC=1 TO ELEM 3910 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*DAT_C(KC,1)*DAT_C(KC,2) 3920 NEXT KC 3930 SPLUS_IN$=STR$(DC_OUT) 3940 RETURN 3950 ' 3960 *CALC_AVX 3970 GOSUB *CALC_NUMN: DC_SN=DC_OUT 3980 IF DC_SN=0 THEN SPLUS_IN$=" - Error - ": RETURN 3990 GOSUB *CALC_SX: DC_SX=DC_OUT 4000 DC_OUT=DC_SX/DC_SN 4010 SPLUS_IN$=STR$(DC_OUT) 4020 RETURN 4030 ' 4040 *CALC_AVY 4050 GOSUB *CALC_NUMN: DC_SN=DC_OUT 4060 IF DC_SN=0 THEN SPLUS_IN$=" - Error - ": RETURN 4070 GOSUB *CALC_SY: DC_SY=DC_OUT 4080 DC_OUT=DC_SY/DC_SN 4090 SPLUS_IN$=STR$(DC_OUT) 4100 RETURN 4110 ' 4120 *CALC_SDXX 4130 GOSUB *CALC_AVX: DC_AVX=DC_OUT 4140 IF SPLUS_IN$=" - Error - " THEN RETURN 4150 DC_OUT=0 4160 FOR KC=1 TO ELEM 4170 DC_OUT=DC_OUT+VAL(DAT$(KC,4))*(DAT_C(KC,1)-DC_AVX)*(DAT_C(KC,1)-DC_AVX)*VAL(DAT$(KC,3)) 4180 NEXT KC 4190 SPLUS_IN$=STR$(DC_OUT) 4200 RETURN 4210 ' 4220 *CALC_MX 4230 GOSUB *CALC_SDXX 4240 IF SPLUS_IN$=" - Error - " THEN RETURN 4250 DC_OUT=SQR(DC_OUT/DC_SN) 4260 SPLUS_IN$=STR$(DC_OUT) 4270 RETURN 4280 ' 4290 *CALC_MNX 4300 GOSUB *CALC_SDXX 4310 IF DC_SN=1 THEN SPLUS_IN$=" - Error - " 4320 IF SPLUS_IN$=" - Error - " THEN RETURN 4330 DC_OUT=SQR(DC_OUT/(DC_SN-1)) 4340 SPLUS_IN$=STR$(DC_OUT) 4350 RETURN 4360 ' 4370 *CALC_MNAVX 4380 GOSUB *CALC_MNX 4390 IF SPLUS_IN$=" - Error - " THEN RETURN 4400 DC_OUT=DC_OUT/SQR(DC_SN) 4410 SPLUS_IN$=STR$(DC_OUT) 4420 RETURN 4430 ' 4440 *CALC_RNAVX 4450 GOSUB *CALC_MNAVX 4460 IF SPLUS_IN$=" - Error - " THEN RETURN 4470 DC_OUT=.6745!*DC_OUT 4480 SPLUS_IN$=STR$(DC_OUT) 4490 RETURN 4500 ' 4510 *CALC_SLX 4520 DC_OUT=0 4530 FOR KC=1 TO ELEM 4540 IF DAT_C(KC,1)>0 THEN DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*LOG(DAT_C(KC,1)) 4550 NEXT KC 4560 RETURN 4570 ' 4580 *CALC_SLY 4590 DC_OUT=0 4600 FOR KC=1 TO ELEM 4610 IF DAT_C(KC,2)>0 THEN DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*LOG(DAT_C(KC,2)) 4620 NEXT KC 4630 RETURN 4640 ' 4650 *CALC_SLXLX 4660 DC_OUT=0 4670 FOR KC=1 TO ELEM 4680 IF DAT_C(KC,1)>0 THEN DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*LOG(DAT_C(KC,1))*LOG(DAT_C(KC,1)) 4690 NEXT KC 4700 RETURN 4710 ' 4720 *CALC_SLXY 4730 DC_OUT=0 4740 FOR KC=1 TO ELEM 4750 IF DAT_C(KC,1)>0 THEN DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*LOG(DAT_C(KC,1))*DAT_C(KC,2) 4760 NEXT KC 4770 RETURN 4780 ' 4790 *CALC_SXLY 4800 DC_OUT=0 4810 FOR KC=1 TO ELEM 4820 IF DAT_C(KC,2)>0 THEN DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*DAT_C(KC,1)*LOG(DAT_C(KC,2)) 4830 NEXT KC 4840 RETURN 4850 ' 4860 *CALC_SLXLY 4870 DC_OUT=0 4880 FOR KC=1 TO ELEM 4890 IF DAT_C(KC,1)>0 AND DAT_C(KC,2)>0 THEN DC_OUT=DC_OUT+VAL(DAT$(KC,4))*VAL(DAT$(KC,3))*LOG(DAT_C(KC,1))*LOG(DAT_C(KC,2)) 4900 NEXT KC 4910 RETURN 4920 ' 4930 *RET_LINE 4940 GOSUB *CALC_NUMN: DC_SN=DC_OUT 4950 IF DC_SN<2 THEN SPLUS_IN$=" - Error - ": RETURN 4960 GOSUB *CALC_SX: DC_SX=DC_OUT 4970 GOSUB *CALC_SXX: DC_SXX=DC_OUT 4980 IF DC_SN*DC_SXX-DC_SX*DC_SX=0 THEN SPLUS_IN$=" - Error - ": RETURN 4990 GOSUB *CALC_SY: DC_SY=DC_OUT 5000 GOSUB *CALC_SXY: DC_SXY=DC_OUT 5010 RET_B=(DC_SN*DC_SXY-DC_SX*DC_SY)/(DC_SN*DC_SXX-DC_SX*DC_SX) 5020 RET_A=(DC_SY-RET_B*DC_SX)/DC_SN 5030 SPLUS_IN$=STR$(RET_A) 5040 RETURN 5050 ' 5060 *RET_LOG 5070 GOSUB *CALC_NUMN: DC_SN=DC_OUT 5080 IF DC_SN<2 THEN SPLUS_IN$=" - Error - ": RETURN 5090 GOSUB *CALC_SLX: DC_SX=DC_OUT 5100 GOSUB *CALC_SLXLX: DC_SXX=DC_OUT 5110 IF DC_SN*DC_SXX-DC_SX*DC_SX=0 THEN SPLUS_IN$=" - Error - ": RETURN 5120 GOSUB *CALC_SY: DC_SY=DC_OUT 5130 GOSUB *CALC_SLXY: DC_SXY=DC_OUT 5140 RET_B=(DC_SN*DC_SXY-DC_SX*DC_SY)/(DC_SN*DC_SXX-DC_SX*DC_SX) 5150 RET_A=(DC_SY-RET_B*DC_SX)/DC_SN 5160 SPLUS_IN$=STR$(RET_A) 5170 RETURN 5180 ' 5190 *RET_EXP 5200 GOSUB *CALC_NUMN: DC_SN=DC_OUT 5210 IF DC_SN<2 THEN SPLUS_IN$=" - Error - ": RETURN 5220 GOSUB *CALC_SX: DC_SX=DC_OUT 5230 GOSUB *CALC_SXX: DC_SXX=DC_OUT 5240 IF DC_SN*DC_SXX-DC_SX*DC_SX=0 THEN SPLUS_IN$=" - Error - ": RETURN 5250 GOSUB *CALC_SLY: DC_SY=DC_OUT 5260 GOSUB *CALC_SXLY: DC_SXY=DC_OUT 5270 RET_B=(DC_SN*DC_SXY-DC_SX*DC_SY)/(DC_SN*DC_SXX-DC_SX*DC_SX) 5280 RET_A=EXP((DC_SY-RET_B*DC_SX)/DC_SN) 5290 SPLUS_IN$=STR$(RET_A) 5300 RETURN 5310 ' 5320 *RET_XX 5330 GOSUB *CALC_NUMN: DC_SN=DC_OUT 5340 IF DC_SN<2 THEN SPLUS_IN$=" - Error - ": RETURN 5350 GOSUB *CALC_SLX: DC_SX=DC_OUT 5360 GOSUB *CALC_SLXLX: DC_SXX=DC_OUT 5370 IF DC_SN*DC_SXX-DC_SX*DC_SX=0 THEN SPLUS_IN$=" - Error - ": RETURN 5380 GOSUB *CALC_SLY: DC_SY=DC_OUT 5390 GOSUB *CALC_SLXLY: DC_SXY=DC_OUT 5400 RET_B=(DC_SN*DC_SXY-DC_SX*DC_SY)/(DC_SN*DC_SXX-DC_SX*DC_SX) 5410 RET_A=EXP((DC_SY-RET_B*DC_SX)/DC_SN) 5420 SPLUS_IN$=STR$(RET_A) 5430 RETURN 5440 ' 5450 *MCURSOR_ALLOW 5460 MOUSE 2,CHR$(255,255,191,255,159,255,143,255,135,255,131,255,129,255,128,255,128,127,128,63,128,127,128,255,128,127,144,127,248,127,248,255),CHR$(0,0,0,0,0,0,32,0,48,0,24,0,44,0,30,0,47,0,22,0,44,0,6,0,6,0,3,0,2,0,0,0) 5470 RETURN 5480 ' 5490 *MCURSOR_WAIT 5500 MOUSE 2,CHR$(240,31,240,31,240,31,248,63,248,63,248,63,252,127,252,127,252,127,248,63,248,63,248,63,240,31,240,31,240,31,240,31),CHR$(0,0,7,192,7,192,3,128,2,128,1,0,0,0,1,0,0,0,3,128,3,128,3,128,6,192,5,64,2,128,0,0) 5510 RETURN 5520 ' 5530 *EXIT 5540 MOUSE 5 5550 FOR KE=0 TO 478 STEP 2 5560 LINE(0,KE)-(639,KE),PSET,%0 5570 LINE(0,479-KE)-(639,479-KE),PSET,%0 5580 NEXT KE 5590 COLOR 7,0,7: SCREEN@ 0: CLS 5600 LOCATE 22,1: PRINT "Statistics Tool Murex Ver1.0" 5610 LOCATE 21,3: PRINT "Copyright (C) Ryusuke Sugiura , 1995." 5620 END